home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_Scroll / Graphic.h < prev    next >
Text File  |  1992-12-19  |  3KB  |  107 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34.  *    Graphic.h
  35.  *
  36.  *    Version:    2.0
  37.  *    Author:    Ken Fromm
  38.  *    History:
  39.  *            03-07-91        Added this comment.
  40.  */
  41.  
  42. #import "ScrollApp.h"
  43. #import "DrawingView.h"
  44. #import <objc/Object.h>
  45. #import <appkit/graphics.h>
  46.  
  47. #define FILL        0
  48. #define STROKE    1
  49. #define CLIP        2
  50.  
  51. #define GRAY    0
  52. #define RGB        1
  53. #define HSB        2
  54. #define CMYK    3
  55.  
  56. typedef struct _GParms {
  57.     unsigned char        path_type;
  58.     NXColor            color;
  59.     float                linewidth;
  60.     float                miterlimit;
  61.     unsigned char        linejoin;
  62.     unsigned char        linecap;
  63. } GParms;
  64.  
  65. @interface Graphic : Object
  66. {
  67.     NXRect     bounds;            /* the bounds */
  68.  
  69.     GParms    parms;            /* the graphic state parameters for the object */
  70.  
  71.     UPath    path;            /* the path */
  72. }
  73.  
  74. /* Factory methods */
  75. + new;
  76. - free;
  77.  
  78. - installGparms:(const GParms *) gParms;
  79. - installUpath:(const UPath *) aUpath andBounds:(const NXRect *) aRect;
  80. - getBounds:(NXRect *)theRect;
  81.  
  82. - setPSState:(GParms *) gParms;
  83.  
  84. - setPathType:(int) value;
  85. - (int)pathType;
  86.  
  87. - setLineWidth:(float) value;
  88. - (float)lineWidth;
  89. - setLineJoin:(int) value;
  90. - (int)lineJoin;
  91. - setLineCap:(int) value;
  92. - (int)lineCap;
  93. - setMiterLimit:(float) value;
  94. - (float)miterLimit;
  95.  
  96. - (float) gray;
  97. - setGray:(float)aGray;
  98. - (NXColor)color;
  99. - setColor:(NXColor) aColor;
  100.  
  101. - getUpath:(UPath **) aUpath  forRect:(NXRect *) r;
  102. - drawObject:(NXRect *) r  currentParms:(GParms *) gParms
  103.     withManner:(int) manner  timingInfo:(Timing *) timing;
  104.  
  105. @end
  106.  
  107.